package flst.ipiweb.persistance.dao;

import java.util.List;

import flst.ipiweb.transverse.IPIException;
import flst.ipiweb.transverse.Relai;

public interface IRelaiDao {

	/**
	 * Cette méthode permet de créer un relai en base
	 * @param relai : le relai à créer
	 * @throws IPIException 
	 */
	public void createRelai(Relai relai) throws IPIException;
	
	/**
	 * Cette méthode permet de mettre à jour un relai en base
	 * @param relai : le relai à mettre à jour
	 */
	public void updateRelai(Relai relai) throws IPIException;
	
	/**
	 * Cette méthode permet de supprimer un relai
	 * @param relai : le relai à supprimer
	 */
	public void deleteRelai(Relai relai) throws IPIException;
	
	/**
	 * Cette méthode permet de récupérer la liste des relais en base trié par numéro de relai
	 * @return List<Relai> : la liste des relais trouvés
	 */
	public List<Relai> listerRelai() throws IPIException;
	
	/**
	 * Cette méthode permet de récupérer la liste des relais en base trié par nom de relai
	 * @return List<Relai> : la liste des relais trouvés
	 */
	public List<Relai> listerRelaiByName() throws IPIException;
	
	/**
	 * Cette méthode permet de récupérer la liste des relais en base trié par ville
	 * @return List<Relai> : la liste des relais trouvés
	 */
	public List<Relai> listerRelaiByVille() throws IPIException;
	
	/**
	 * Cette méthode permet de générer un numéro de relai
	 * @return int : le numéro de relai généré
	 */
	public int genererNumRelai();
	
	/**
	 * Cette méthode permet de récupérer un relai par son identifiant
	 * @return relai : le relai trouvé
	 */
	public Relai getRelaiById(int idRelai);
	
}
